An architecture for interpreted dynamic object-oriented languages

نویسنده

  • Andreas Kind
چکیده

of the thesis has been supplied on the condition that anyone who consults it is understood to recognise that its copyright rests with its author and that no quotation from the thesis and no information derived from it may be published without the prior written consent of the author. This thesis may be made available for consultation within the University Library and may be photocopied or lent to other libraries for the purposes of consultation. Summary This thesis is concerned with the implementation of object-oriented dynamic programming languages based on bytecode interpretation. A new interpretive implementation architecture is proposed that meets the requirements of code and system portability, execution performance , static and dynamic memory eeciency as well as language interoperability. The diierent quality of the architecture compared to other virtual machine approaches is related to the key techniques developed within this work: (i) C embedded virtual machine code, (ii) indexed code threading, (iii) optimal virtual instruction ordering and (iv) quasi-inline method caching. C embedded virtual machine code refers to the representation of bytecodes as constant C arrays that are located in sharable text segments after compilation. Interoperability, application start-up and dynamic memory usage beneet from this representation. Indexed code threading addresses the performance problem with virtual instruction mapping (i.e. loading, decoding and invoking) by using a fast threaded instruction transfer. Unlike with standard code threading, virtual machine code remains compact and executable also with a non-threaded virtual machine emulator. A further performance boost is achieved with optimal virtual instruction ordering. This technique helps to cluster the native code implementing virtual instructions so that native instruction cache performance is increased. Finally, the eeciency problem involved with dynamic method lookup is alleviated with an inline caching scheme that is applicable with constant bytecode vectors. The scheme exploits type locality similar to polymorphic inline caching. However, dynamic memory is saved by avoiding redundant method entries and by being adaptable to generic function invocation which typically comes in waves with hot-spots on particular methods. A realization of the architecture is presented in form of an implementation of the dynamic object-oriented language EuLisp. The implementation demonstrates the feasibility and eeec-tiveness of the proposed architecture. The average performance increase with indexed code threading is 14% (P5) and 17% (MIPS). The average increase with optimal instruction ordering in the indexed threaded interpreter is 21% (P5) and 15% (MIPS). Sharable read-only data is increased on average by …

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Availability evaluation of Software architecture of object oriented Style using coloured Petri nets

Software architecture is one of the most fundamental products in the process of software development in the areas of behavioral or non- behavioral features like availability or transformability change. There are different ways to evaluate software architecture one of which is the creation of application model. An executable model of software architecture is an official description of architectu...

متن کامل

A Dynamic Approach to Combine Components and Aspects

In this paper we discuss the use of a dynamic approach to combine components and aspects in order to form a CORBA-based application. We use AspectLua, an extension of an interpreted and dynamically typed language – Lua, which supports aspect-oriented programming. We describe the use of AspectLua in the context of a CORBA-based environment. AspectLua explores the reflexive features of Lua and th...

متن کامل

An Alternative Architecture for Objects: Lessons from the mushroom project

Over the last six years, the mushroom project at the University of Manchester has investigated alternative computer architectures for support of object-oriented systems. After much simulation and design study, we designed an architecture which we believe is especially suited to the characteristics of object-oriented systems, and constructed a prototype implementation of that architecture. Detai...

متن کامل

Using Reeection for Implementing Icom, an Interoperable Common Object Model

Reuse of already developed object-oriented software components is reduced when software is written in diierent object-oriented languages, or when it is not easy to relocate the software components from one machine to another machine. Software development in a distributed and heterogeneous environment is a solution to this problem. Several common object models have been deened for software devel...

متن کامل

Compiling Java to SUIF: Incorporating Support for Object-Oriented Languages

A primary objective in the SUIF compiler design has been to develop an infrastructure for research in a variety of compiler topics including optimizations on object-oriented languages. However, the task of optimizing object-oriented languages requires that high-level object constructs be visible in SUIF. Java is a statically-typed, object-oriented and interpreted language that has the same requ...

متن کامل

An Interpreted Language for Distributed Programming 1 Motivation 1.1 Object-based Rpc and Static Compilation

The emerging trend in writing distributed applications is to use an object-based RPC system with a statically compiled, object-oriented language. While such a programming environment is adequate for many tasks, object-based RPC systems and statically compiled languages also have certain intrinsic limitations. These limitations become signiicant when writing applications which are both distribut...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1998